package org.example.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @author WN
 * @date：2024/03/22 15:41
 */
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface FeignRetry {
    /**
     * 重试机制
     */
    Backoff backoff() default @Backoff;

    /**
     * 最大重试次数
     */
    int maxAttempt() default 3;

    /**
     * 抛出的异常
     *
     * @return
     */
    Class<? extends Throwable> [] include() default {};
}
